package system.vo;

import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import framework.runtime.JsonObjectArraySerializer;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import system.defined.ExampleEnum;
import system.defined.FuncMoveType;

/**
 * 通过API输出的枚举值对象
 */
@Getter
public class EnumUI {

    /**
     * 以数组方式输出枚举值
     */
    @ApiModelProperty(value = "功能操作类型")
    private FuncMoveType[] funcMoveType = FuncMoveType.values();

    /**
     * 无实际业务，仅用于展示多属性枚举输出的方式使用，其它需要用于前端的枚举可以在后续输出
     */
    @ApiModelProperty(value = "多属性枚举展示")
    @JsonSerialize(using = JsonObjectArraySerializer.class)
    private ExampleEnum[] exampleEnum = ExampleEnum.values();

    /**
     * 无实际业务，仅用于展示指定特定类型输出方式
     */
    @ApiModelProperty(value = "多属性枚举展示")
    @JsonSerialize(using = JsonObjectArraySerializer.class)
    private ExampleEnum[] exampleEnumRange = new ExampleEnum[]{
            ExampleEnum.IN_PROGRESS, ExampleEnum.COMPLETED
    };

    // ... 定义你的枚举 ... //

}
